
#include "SDL.h"

const int WINDOW_WIDTH = 640;
const int WINDOW_HEIGHT = 480;
const char* WINDOW_TITLE = "SDL Start";

int main(int argc, char **argv)
{
    (void)argc;
    (void)argv;
	bool gameRunning = true;
	SDL_Event event;

    if (SDL_Init( SDL_INIT_VIDEO ) == 0)
    {
    	printf("SDL_Init Success\n");
    }
    else
    {
    	printf("SDL_Init Fail\n");
    }

    /*
    * 我们用SDL_SetVideoMode()来创建一个窗口，这个函数包含四个参数:
    * 依次是窗口的宽度、高度、单个像素占用位数和一个标记变量。
    * 其中第三个参数最为简单的方法是设置为0，这样它就为当前默认的显示设置）。
    * 最后一个参数这里我们用SDL_HWSURFACE和SDL_DOUBLEBUF.
    * 联起来使用要用或操作符: SDL_HWSURFACE | SDL_DOUBLEBUF.
    * 标记变量SDL_HWSURFACE表示在显存里头创建缓存；
    * SDL_DOUBLEBUF表示我要创建两个缓存区域，一个用作前端缓存，这里存放的就是我们正在显示到屏幕的内容；
    * 另一个用作后端缓存，这里存放的是我们将要显示到屏幕上的内容
    */
    SDL_Surface* screen = SDL_SetVideoMode( WINDOW_WIDTH, WINDOW_HEIGHT, 0,
        SDL_HWSURFACE | SDL_DOUBLEBUF );

    /*
	* 我们可以用SDL_WM_SetCaption()来设置窗口的标题，它有两个参数:
	* 第一个参数就是标题的内容.
	* 第二个参数用来指定一个自定义的图标，设置为0表示使用默认的图标.
    */
    SDL_WM_SetCaption( WINDOW_TITLE, 0 );	 

	while (gameRunning)
	{
		/*函数返回0表示没有事件发生，所以我们需要检查它的返回值来确定所要处理的事件*/
		if (SDL_PollEvent(&event))
      	{
      		/* 如果这个变量值为SDL_QUIT，那么我们就知道了用户想要关闭窗口 */
			if (event.type == SDL_QUIT)
			{
				gameRunning = false;
			}
		}
	}

	/*
	* 我们呼叫SDL_Quit()函数来关闭SDL。
	* 它会释放前面通过SDL_SetVideoMode()返回的SDL_Surface类型的screen buffer。
	*/
    SDL_Quit();
    return 0;

}